﻿using System;
using System.Data.OleDb;
using TheOutLetLibrary.Dominio;

namespace TheOutLetLibrary.Infraestrutura {

    public class SQLServerFactoryDAO : IFactoryDAO {

        public OleDbConnection GetConexao {
            get { throw new NotImplementedException(); }
        }

        public IProdutoDAO GetProdutoDAO(OleDbTransaction transacao) {
            return new SQLServerProdutoDAO();
        }

        public INotaFiscalDAO GetNotaFiscalDAO(OleDbTransaction transacao) {
            return new SQLServerNotaFiscalDAO();
        }

        public IRemessaDAO GetRemessaDAO(OleDbTransaction transacao) {
            return new SQLServerRemessaDAO();
        }

        public IEmpresaDAO GetEmpresaDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        public IGenericDAO<k_order> Getk_orderDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        public IGenericDAO<k_customer> Getk_customerDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        public IGenericDAO<k_phone> Getk_cellphoneDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        public IGenericDAO<k_phone> Getk_phoneDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        public IGenericDAO<k_address> Getk_addressbillingDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        public IGenericDAO<k_address> Getk_addressshippingDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        public IGenericDAO<k_payment> Getk_paymentDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        public IGenericDAO<k_payment> Getk_delivryDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        public IGenericDAO<k_delivery> Getk_deliveryDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }


        public IGenericDAO<ItemNotaFiscal> GetItemNotaFiscalDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }


        IGenericDAO<NotaFiscal> IFactoryDAO.GetNotaFiscalDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }


        public IGenericDAO<k_freight> Getk_freightDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }


        public IGenericDAO<k_orderLine> Getk_orderLineDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }


        public IGenericDAO<k_cart> Getk_cartDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        public IGenericDAO<k_product> Getk_productDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        OleDbConnection IFactoryDAO.GetConexao {
            get { throw new NotImplementedException(); }
        }

        IProdutoDAO IFactoryDAO.GetProdutoDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        IRemessaDAO IFactoryDAO.GetRemessaDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        IEmpresaDAO IFactoryDAO.GetEmpresaDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        IGenericDAO<ItemNotaFiscal> IFactoryDAO.GetItemNotaFiscalDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        IGenericDAO<k_customer> IFactoryDAO.Getk_customerDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        IGenericDAO<k_phone> IFactoryDAO.Getk_cellphoneDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        IGenericDAO<k_phone> IFactoryDAO.Getk_phoneDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        IGenericDAO<k_address> IFactoryDAO.Getk_addressbillingDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        IGenericDAO<k_address> IFactoryDAO.Getk_addressshippingDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        IGenericDAO<k_payment> IFactoryDAO.Getk_paymentDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        IGenericDAO<k_delivery> IFactoryDAO.Getk_deliveryDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        IGenericDAO<k_freight> IFactoryDAO.Getk_freightDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        IGenericDAO<k_orderLine> IFactoryDAO.Getk_orderLineDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        IGenericDAO<k_cart> IFactoryDAO.Getk_cartDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        IGenericDAO<k_product> IFactoryDAO.Getk_productDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }


        Ik_orderDAO IFactoryDAO.Getk_orderDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }


        public IGenericDAO<k_category> Getk_categoryDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        public IGenericDAO<k_brand> Getk_brandDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        public IGenericDAO<k_image> Getk_imageDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }

        public IGenericDAO<k_sku> Getk_skuDAO(OleDbTransaction transacao) {
            throw new NotImplementedException();
        }
    }
}
